﻿// 3659. 加油站.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>

using namespace std;
/*
https://www.acwing.com/problem/content/3662/

一辆汽车加满油后可行驶 n公里。

现在汽车要从起始地 S行驶至目的地 E。

两地之间存在 k 个加油站。

已知，起始地与第 1个加油站相距 l1公里，第 1 个加油站与第 2个加油站相距 l2 公里，
第 2个加油站与第 3个加油站相距 l3公里，…，第 k个加油站与目的地相距 lk+1公里。

为了使汽车能够顺利到达目的地，请问汽车最少要在途中加几次油？

汽车初始时，油箱是满的。

输入格式
输入包含多组测试数据。

每组数据第一行包含两个整数 n 和 k。

第二行包含 k+1 个整数 l1,l2,…,lk+1。

输出格式
每组数据输出一行结果，如果汽车可以抵达目的地，则输出最少加油次数，否则输出 No Solution。

数据范围
1≤n,k≤5000
,
1≤li≤10000
输入样例：
7 7
1 2 3 4 5 1 6 6
3 3
1 2 3 4
输出样例：
4
No Solution
*/

const int K = 5010;
int dis[K];
int n, k;

void solve() {
	int ans = 0; int curr = n;
	for (int i = 1; i <= k+1; i++) {
		if (curr >= dis[i]) {
			curr -= dis[i];
		}
		else {
			ans++;
			curr = n;
			if (curr < dis[i]) {
				//加满油还是到达不了 直接退出
				cout << "No Solution" << endl;
				return;
			}
			i--;
		}
	}
	cout << ans << endl;
}

int main()
{
	while (cin >> n >> k) {
		for (int i = 1; i <= k+1; i++) {
			cin >> dis[i];
		}

		solve();
	}

	return 0;
}

 